#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <sstream>
MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent),
  ui(new Ui::MainWindow)
{
  ui->setupUi(this);
}

MainWindow::~MainWindow()
{
  delete ui;
}

void MainWindow::on_calculeaza_clicked()
{
    long double result;
    expresie=ui->expresie->text().toStdString();
    Functie f(expresie);
    result= f.calcul();
    std::ostringstream temp;
    temp<<result;
    ui->expresie->setText(QString(temp.str().c_str()));
}
void MainWindow::on_deriveaza_clicked()
{
    expresie=ui->expresie->text().toStdString();
    Functie f(expresie);
    ui->expresie->setText(QString(f.derivare().c_str()));
}
void MainWindow::on_zero_clicked()
{
  ui->expresie->setText(ui->expresie->text()+QString("0"));
}

void MainWindow::on_unu_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("1"));
}

void MainWindow::on_doi_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("2"));
}

void MainWindow::on_trei_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("3"));
}

void MainWindow::on_patru_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("4"));
}

void MainWindow::on_cinci_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("5"));
}

void MainWindow::on_sase_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("6"));
}

void MainWindow::on_sapte_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("7"));
}

void MainWindow::on_opt_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("8"));
}

void MainWindow::on_noua_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("9"));
}

void MainWindow::on_plus_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("+"));
}

void MainWindow::on_minus_clicked()
{
    ui->expresie->setText(ui->expresie->text()+QString("-"));
}

void MainWindow::on_sin_clicked()
{
  long double result;
  expresie="sin("+ui->expresie->text().toStdString()+")";
  Functie f(expresie);
  result= f.calcul();
  std::ostringstream temp;
  temp<<result;
  ui->expresie->setText(QString(temp.str().c_str()));
}

void MainWindow::on_clear_clicked()
{
    ui->expresie->clear();
}



void MainWindow::on_tan_clicked()
{
    long double result;
    expresie="tan("+ui->expresie->text().toStdString()+")";
    Functie F(expresie);
    result=F.calcul();
    std::ostringstream temp;
    temp<<result;
    ui->expresie->setText(QString(temp.str().c_str()));
}

void MainWindow::on_ctan_clicked()
{
  long double result;
  expresie="ctan("+ui->expresie->text().toStdString()+")";
  Functie F(expresie);
  result=F.calcul();
  std::ostringstream temp;
  temp<<result;
  ui->expresie->setText(QString(temp.str().c_str()));
}
